#ifndef frm_control_TInteger_H
#define frm_control_TInteger_H

#include "svl_TVariant.h"
#include "frm_control_TString.h"

namespace frm { namespace control {

///////////////////////////////////////////////////////////////////////////////

struct TInteger : public TString
{
  TInteger(TWindow &Window) : TString(Window),enableEdit(true) {}
  //
  bool IsNull()  { return TString::GetValue().Len() == 0; }
  void SetNull() { TString::SetValue(""); }
  //
  void SetValue(svl::TVariant V);
  //
  void SetEnableEdit(bool V) { enableEdit = V;}
  void SetValue(int V) { TString::SetValue(V); }
  int  GetValue()      { return TString::GetValue().ConvertToInt(); }
  //
  virtual bool UpdateValue(svl::TString V);

protected:
  virtual void TComponent_KeyboardChar(grf::TKeyboardChar &KeyboardChar);
  virtual void TComponent_FocusEnter()  { TString::TComponent_FocusEnter(); }
  virtual void TComponent_FocusExit();
  virtual bool TComponent_FocusEnable() { return enableEdit;}

private:
	bool enableEdit;
};

///////////////////////////////////////////////////////////////////////////////
}}

#endif
